﻿using B.S.BasicData.Domain.TSH;
using B.S.BasicData.ErrorCode;
using MediatR;

namespace B.S.BasicData.Write.Api.Application.Command.TSH
{
    /// <summary>
    /// 在线箱子命令层     ---tsh
    /// </summary>
    public class QueryOnlineBoxesCommand : IRequest<ApiResult<List<OnlineBoxes>>>
    {
        /// <summary>
        /// 仓库名称
        /// </summary>
        public string? WarehouseName { get; set; }
        
        /// <summary>
        /// 箱号
        /// </summary>
        public string? BoxNumber { get; set; }
    }

    /// <summary>
    /// 添加在线箱子命令
    /// </summary>
    public class CreateOnlineBoxCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; }
        
        /// <summary>
        /// 箱号
        /// </summary>
        public string BoxNumber { get; set; }
        
        /// <summary>
        /// 重量
        /// </summary>
        public double Weight { get; set; }
        
        /// <summary>
        /// 长
        /// </summary>
        public double Length { get; set; }
        
        /// <summary>
        /// 宽
        /// </summary>
        public double Width { get; set; }
        
        /// <summary>
        /// 高
        /// </summary>
        public double Height { get; set; }
        
        /// <summary>
        /// 状态
        /// </summary>
        public bool States { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get; set; }
    }

    /// <summary>
    /// 更新在线箱子命令
    /// </summary>
    public class UpdateOnlineBoxCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; }
        
        /// <summary>
        /// 箱号
        /// </summary>
        public string BoxNumber { get; set; }
        
        /// <summary>
        /// 重量
        /// </summary>
        public double Weight { get; set; }
        
        /// <summary>
        /// 长
        /// </summary>
        public double Length { get; set; }
        
        /// <summary>
        /// 宽
        /// </summary>
        public double Width { get; set; }
        
        /// <summary>
        /// 高
        /// </summary>
        public double Height { get; set; }
        
        /// <summary>
        /// 状态
        /// </summary>
        public bool States { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get; set; }
    }

    /// <summary>
    /// 删除在线箱子命令
    /// </summary>
    public class DeleteOnlineBoxCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// ID
        /// </summary>
        public int Id { get; set; }
    }
}
